# session 
# 服务端需确认：哪一个http请求对应哪一个客户？
# 创建session，保存到数据库中，用一个sessionid对应session，然后返回sessionid
# http协议规定：在response响应头set-cookie 里面的数据，叫做cookie数据，浏览器客户端必须保存下
#               同时在后面的访问该网站中，http请求头中cookie中必须写到所有cookie数据 
# session机制：利用cookie这个机制

# chrome要点 preserve log(保留日志)

# 后续请求要携带cookie，有两种方法：
#  1:  
#   dict1 = {'cookie':'sessionid=vs178b3gwwr9y90yy5z7mnbslzzlsqe8'}
#   requests.get('xxx',headers = dict1)
#  2: 
#    直接用session类
#    s = requests.Session()
#    s.post()
#    proxies = {'http': 'http://127.0.0.1:8888'}
#    session通过代理抓包
#    s.proxies.update(proxies)




'------下面是实战代码--------'


# 下面是bysms的登陆函数，可以看到如果账号密码正确，通过window.location.herf = /mgr/index.html 代码跳转到首页
# function postLoginRequest()
# {console.log("login");
#  var e=$("#username").val(),n=$("#password").val();
#  0!==e.length?0!==n.length?$.ajax({url:"/api/mgr/signin",type:"POST",data:"username="+e+"&password="+n,success:function(e,n,t){0===e.ret?window.location.href="/mgr/index.html":(alert("登录失败 : "+e.msg),$("#password").val(""))},error:function(e,n,t){alert("错误: "+e.status+t)}}):alert("请输入密码"):alert("请输入用户名")}function curTimestamp(){var e=(new Date).getTime();return Math.floor(e/1e3)}var lastSendReqTime=0;function on_return(e){if(13==e){var n=curTimestamp();if(n-window.lastSendReqTime<5)return;window.lastSendReqTime=n,postLoginRequest()}}document.onkeydown=function(e){on_return(window.event?window.event.keyCode:e.which)}
import requests,traceback

proxies = {
    'http': 'http://127.0.0.1:8888',
    'https': 'http://127.0.0.1:8888'
}
data = {
    'username':'byhy',
    'password':'88888888'
}
respose = requests.post('http://127.0.0.1/api/mgr/signin',
                        data = data,
                        proxies=proxies)
print(respose.text)

params = {
    'action':'list_customer',
    'pagesize':'5',
    'pagenum':'2',
}
dict1 = {'cookie':'sessionid=vs178b3gwwr9y90yy5z7mnbslzzlsqe8'}
# 不携带cookie继续访问
print('--------------不携带cookie--------------')

try:
    rs = requests.get('http://127.0.0.1/api/mgr/customers',params=params,proxies=proxies)
    print(rs.url)
    print(rs.text)
except:
    print(traceback.format_exc)

print('--------------携带cookie--------------')
try:
    rs = requests.get('http://127.0.0.1/api/mgr/customers',params=params,headers=dict1,proxies=proxies)
    print(rs.text)
    print(rs.url)
    print(rs.cookies)
except:
    print(traceback.format_exc)